package org.morningangel.dao;

import java.sql.Timestamp;
import java.util.List;

import org.morningangel.bean.Activity;

public interface ActivityDao {

	/**
	 * 添加一个活动
	 * @param activity		要添加的Activity对象
	 * @return					返回受影响的记录数
	 */
	public Integer save(Activity activity);
	/**
	 * 根据id获取一个活动
	 * @param id				活动id
	 * @return					有则返回Activity对象，无则返回null
	 */
	public Activity getById(Integer id);
	/**
	 * 修改活动，此处不会修改活动状态
	 * @param activity		要修改的Activity对象
	 * @return					返回受影响的记录数
	 */
	public Integer update(Activity activity);
	/**
	 * 修改活动状态
	 * @param id				要修改的活动id
	 * @param status		修改成的成的状态
	 * @return					返回受影响的记录数
	 */
	public Integer update(Integer id, Integer status);
	/**
	 * 根据不同状态统计活动数
	 * @param status		活动状态
	 * @return					记录数
	 */
	public Integer count(Integer status);
	/**
	 * 根据状态分页查看活动
	 * @param pageNum	页数
	 * @param pageSize	每页的大小
	 * @param status		活动状态
	 * @return					返回活动列表
	 */
	public List<Activity> listPage(Integer pageNum, Integer pageSize, Integer status);
	/**
	 * 根据关键字搜索活动，最多返回前50条记录
	 * @param key			关键字，对title,address,type,sponsor,description进行模糊查询
	 * @return					返回活动列表
	 */
	public List<Activity> search(String key);
	/*
	 * 得出所有活动的记录数
	 * * @param id		活动
	 * @return					记录数
	 */
	public Integer getCount();
	/*
	 * 得到活动的上传的大图片路径存储
	 */
	public Integer updateMainImage(String mainImage,Timestamp ts);
	/**
	 * 根据分页显示搜索活动
	 * @param maxId	          最大Id
	 * @param pageSize	每页的大小
	 * @param key       搜索内容
	 * @return					返回活动列表
	 */
	public List<Activity> listSearchPage(Integer maxId, Integer pageSize,String key);
	/**
	 * 获取最新的活动
	 * @param pageSize	每页的大小
	 * @param key       搜索内容
	 * @return					返回活动列表
	 */
	public List<Activity> listNewPage(Integer pageSize,String key);
}
